﻿using System;
using KryptecizerBase.Decryption;
using KryptecizerBase.Encryption;

namespace KryptecizerBase
{
    /// <summary>
    /// Kryption base obect.
    /// </summary>
    public abstract class KryptBaseObject
    {
        #region abstract methods
        /// <summary>
        /// Abstract method to decrypts the instance with the specified decryptor.
        /// </summary>
        /// <param name="decryptor">The decryptor.</param>
        /// <returns>success</returns>
        public abstract bool Decrypt(Decryptor decryptor);
        /// <summary>
        /// Abstract method to encrypts the instance with the specified encryptor.
        /// </summary>
        /// <param name="encryptor">The encryptor.</param>
        /// <returns>success</returns>
        public abstract bool Encrypt(Encryptor encryptor);
        #endregion
    }

    /// <summary>
    /// Cryption state enum
    /// </summary>
    public enum Kryptstate 
    {
        /// <summary>
        /// encrypted
        /// </summary>
        ENCRYPTED,
        /// <summary>
        /// decrypted
        /// </summary>
        DECRYPTED 
    };
}
